package rpcx_label_center

import (
	"time"

	"github.com/qida/gohp/timex"
)

// const (
// 	TypeTag临时 = 1
// 	TypeTag永久 = 2
// )

// 设备标注绑定关系

// 请求 创建
type ReqCreateRecDeviceTag struct {
	DeviceId string `json:"DeviceId"` //设备编码(国标Id)
	IdScheme int64  `json:"IdScheme"` //方案ID
	TypeTag  int8   `json:"TypeTag"`  //1 临时 2 永久

	JsonTag string `json:"JsonTag"` //标注值内容
	Remark  string `json:"Remark"`  //备注

	UserDefinedEqual string `json:"UserDefinedEqual"` //用户自定义等于查询
	UserDefinedLike  string `json:"UserDefinedLike"`  //用户自定义模糊查询

	TimeStart time.Time `json:"TimeStart"`         //标注关系启用时间
	TimeEnd   time.Time `json:"TimeEnd,omitempty"` //标注关系终止时间

	Log Log `json:"Log,omitempty"` //追踪日志
}

// 请求 删除
type ReqDeleteRecDeviceTag struct {
	DeviceId string `json:"DeviceId"` //设备编码(国标Id)
	IdScheme int64  `json:"IdScheme"` //方案ID
	TypeTag  int8   `json:"TypeTag"`  //1 临时 2 永久

	TimeCreate time.Time `json:"TimeCreate"`    //标注关系启用时间
	Log        Log       `json:"Log,omitempty"` //追踪日志
}

// 请求 查询
type ReqSearchRecDeviceTag struct {
	KeyWord string `json:"KeyWord,omitempty"` //全局关键词
	IsMore  bool   `json:"IsMore"`            //更多

	DeviceId string `json:"DeviceId"` //设备编码(国标Id)
	IdScheme int64  `json:"IdScheme"` //方案ID
	// IdSchemes []int64 `json:"IdSchemes"` //方案ID集
	TypeTag int8   `json:"TypeTag"` //1 临时 2 永久
	Remark  string `json:"Remark"`  //备注

	UserDefinedEqual string `json:"UserDefinedEqual"` //用户自定义等于查询
	UserDefinedLike  string `json:"UserDefinedLike"`  //用户自定义模糊查询

	TimeStart   time.Time `json:"TimeStart"`             //标注标记开始时间
	TimeEnd     time.Time `json:"TimeEnd"`               //标注标记结束时间，默认2099年1月1日
	Page        int64     `json:"Page"`                  //必填 指定返回页码号
	Limit       int64     `json:"Limit"`                 //必填 指定返回每页条数
	FieldOrders []string  `json:"FieldOrders,omitempty"` //指定要排序的字段数组，默认升序，降序加前缀-，如 ["-Id", "Name"] 按Id降序Name升序排列

	Log Log `json:"Log,omitempty"` //追踪日志
}

// 响应 单一对象
type RespRecDeviceTag struct {
	// IdRecDeviceTag int64 `json:"IdRecDeviceTag"` //主键记录ID

	DeviceId  string `json:"DeviceId"`  //设备编码(国标Id)
	IdScheme  int64  `json:"IdScheme"`  //方案ID
	ImageName string `json:"ImageName"` //图片文件名称（图片前缀_国标Id_结构化中心Id_媒体中心Id_抽图时间戳_标准时间显示.扩展名)
	ImageUrl  string `json:"ImageUrl"`  //图片URL
	TypeTag   int8   `json:"TypeTag"`   //1 临时 2 永久

	JsonTag          string `json:"JsonTag"`          //标注值内容
	JsonDeviceUpload string `json:"JsonDeviceUpload"` //内容
	Remark           string `json:"Remark"`           //备注

	UserDefinedEqual string `json:"UserDefinedEqual"` //用户自定义等于查询
	UserDefinedLike  string `json:"UserDefinedLike"`  //用户自定义模糊查询

	TimeStart  time.Time      `json:"TimeStart"`         //标注关系启用时间
	TimeEnd    time.Time      `json:"TimeEnd,omitempty"` //标注关系终止时间
	TimeCreate time.Time      `json:"TimeCreate"`        //记录创建时间
	TimeUpdate timex.TimeNull `json:"TimeUpdate"`        //记录更新时间
}

// 响应 查询列表
type RespRecDeviceTags struct {
	Total         int64              `json:"Total"`         //返回列表的总条数
	RecDeviceTags []RespRecDeviceTag `json:"RecDeviceTags"` //返回列表对象
}

// 设备报警消息
type BroadcastRecDeviceTag struct {
	DeviceId         string `json:"DeviceId"`         //设备编码(国标Id)
	IdScheme         int64  `json:"IdScheme"`         //方案ID
	JsonTag          string `json:"JsonTag"`          // rpcx_label_center.Frame
	JsonDeviceUpload any    `json:"JsonDeviceUpload"` // 原始数据
}
